在ubuntu 下安装 node.js 的最新版本
	curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
	sudo apt-get install -y nodejs
退出交互模式
 .exit

 1.module.exports = greet;意思是，把函数greet作为模块的输出暴露出去，这样其他模块就可以使用greet函数了
 2.require 引入文件
 3.var greet = require('./hello'); 将hello 文件中暴露出来的函数进行接收

 CommonJS规范
 	一个模块想要对外暴露变量（函数也是变量），可以用module.exports = variable;，一个模块要引用其他模块暴露的变量，用var ref = require('module_name');就拿到了引用模块的变量。

 基本模块
 	global 全局对象 相当于浏览器端的window 对象
 	process 代表当前用户的进程
 Node.js内置的fs模块就是文件系统模块，负责读写文件
 	读：
 		fs.readFile(path, options, callback_);
 		fs.readFileSync(path, options);//同步
 	写: 
 		fs.writeFile(path, data, options, callback_);
 		fs.writeSync(fd, buffer, offset, length, position);//同步
 	获取文件的大小，创建时间等信息 使用 fs.stat() 返回一个Stat 对象
 	由于Node环境执行的JavaScript代码是服务器端代码，所以，绝大部分需要在服务器运行期反复执行业务逻辑的代码，必须使用异步代码，否则，同步代码在执行时期，服务器将停止响应，因为JavaScript只有一个执行线程。
 	服务器启动时如果需要读取配置文件，或者结束时需要写入到状态文件时，可以使用同步代码，因为这些代码只在启动和结束时执行一次，不影响服务器正常运行时的异步执行。
 	当读取文件的时候不传入字符编码 读取二进制文件时会返回一个Buffer对象，就是一个包含零个或任意个字节的数组

stream是Node.js提供的又一个仅在服务区端可用的模块，目的是支持“流”这种数据结构
	在Node.js中，流也是一个对象，我们只需要响应流的事件就可以了：data事件表示流的数据已经可以读取了，end事件表示这个流已经到末尾了，没有数据可以读取了，error事件表示出错了。
	一个输出流的输出 可以作为一个输入流的输入 pipe();rs.pipe(ws,{end:false})


nodejs 介绍
	单线程 异步 事件驱动
	